/*
 * TestBSharpFrontCoding.cpp
 *
 *  Created on: 02/10/2010
 *      Author: jijodra
 */

#include "TestBSharpFrontCoding.h"
#include "ArbolBSharpFrontCoding.h"

TestBSharpFrontCoding::TestBSharpFrontCoding() {
}

TestBSharpFrontCoding::~TestBSharpFrontCoding() {
}

void TestBSharpFrontCoding::Test(){

	ArbolBSharpFrontCoding arbol;

	arbol.Crear("treeStringLong.dat");
	arbol.Abrir("treeStringLong.dat");

	ManejadorAccesoDatos manejadorDatos = ManejadorAccesoDatos("treeStringLong.dat", CREAR);

	cout << "TAMAÑO BLOQUE: " << manejadorDatos.getTamanioBloques() / 1024 << endl;

	RegistroBSharpStringLong registro = RegistroBSharpStringLong();

	/*for(int i = 500; i < 1000; i++)
	{
		std::ostringstream stream;

		registro.clave = "registro";
		stream << i;
		registro.clave.append(stream.str());
		registro.valor = i + 1;
		registro.valorExtra = i + 2;

		arbol.InsertarRegistro(registro);
	}*/

	for(int i = 0; i < 500; i++)
	{
		std::ostringstream stream;

		registro.clave = "registro";
		stream << i;
		registro.clave.append(stream.str());
		registro.valor = i ;
		registro.valorExtra = i;

		arbol.InsertarRegistro(registro);
	}

	arbol.EliminarRegistro("registro47");
	arbol.EliminarRegistro("registro14");
	arbol.EliminarRegistro("registro250");
	arbol.EliminarRegistro("registro200");
	arbol.EliminarRegistro("registro89");
	arbol.EliminarRegistro("registro170");
	arbol.EliminarRegistro("registro420");
	arbol.EliminarRegistro("registro369");
	arbol.EliminarRegistro("registro499");

	Puntero puntero = Puntero();
	puntero.numBloque = 1;
	puntero.numNodo = 1;
	arbol.Imprimir(puntero);

/*	RegistroBSharpStringLong registro2;

	registro2 = arbol.ObtenerRegistro("registro721");

	if(registro2.clave.empty() && registro2.valor == -1)
		cout << "No se encontro el registro" << endl;
	else
		cout << "La clave buscada fue: " << registro2.clave << " y su valor es " << registro2.valor << endl;

	registro2 = arbol.ObtenerRegistro("registro100");

	if(registro2.clave.empty() && registro2.valor == -1)
		cout << "No se encontro el registro" << endl;
	else
		cout << "La clave buscada fue: " << registro2.clave << " y su valor es " << registro2.valor << " y su valor adicional es " << registro2.valorExtra << endl;

	arbol.ModificarRegistro("registro100", 666, 667);

	registro2 = arbol.ObtenerRegistro("registro100");

	if(registro2.clave.empty() && registro2.valor == -1)
		cout << "No se encontro el registro" << endl;
	else
		cout << "La clave buscada fue: " << registro2.clave << " y su valor es " << registro2.valor << " y su valor adicional es " << registro2.valorExtra << endl;

	arbol.ModificarRegistro("registro222", 333, 334);

	registro2 = arbol.ObtenerRegistro("registro222");

	if(registro2.clave.empty() && registro2.valor == -1)
		cout << "No se encontro el registro" << endl;
	else
		cout << "La clave buscada fue: " << registro2.clave << " y su valor es " << registro2.valor << " y su valor adicional es " << registro2.valorExtra << endl;


	vector<long> vector = arbol.RecorrerOrdenado();

			for(int i = 0; i < vector.size(); i++) {
				cout << vector[i] << endl;
			}*/

}
